Digital information displayed on the Internet may be found on web pages viewed through a web browser. A web page is an HTML file containing both text and a set of hyper-text markup language (HTML) tags that describe how the text should be formatted when the web browser displays the web page on a user's display screen. A web browser is a computer program that goes to a web server on the Internet, requests the web page, and retrieves the page so that a user can view HTML documents and access files and programs related to those HTML documents. A web server is a program that uses HTTP to provide HTML documents and files and programs related to those documents when requested by a web browser. The web browser then interprets the HTML tags within the page and displays the page.
The HTML tags direct the browser as to how the web page should look when it is displayed. The browser interprets these tags to determine the format of the text on the screen. The tags can instruct the browser to change fonts, color, and arrange text in tables. Currently, one of the most widely used HTML tools for arranged web pages is a table. Tables are created with the tag, <table>. A horizontal row in a table begins with the tag <tr>, and each piece of data within the horizontal row begins with the tag <td> and <th>. The width of rows and columns, the height of rows and columns, the heading spacing, and the cell spacing in a table can be controlled.
Embedding spreadsheet controls in a web page using technology such as ActiveX is known. However, converting portions of a table, or entire tables from a web page into an operational spread sheet at the user's disecretion is not known. The prior embedding is controlled by the page developer, and cannot be modified by a user, either remotely or locally. This is because the developer provides embedded instructions linking the table to an actual .xls spreadsheet file that is downloaded by ActiveX. What is needed beyond the prior art is a program for user-controlled local conversion of a table in a web page to a functional and configurable spreadsheet. Such a program should provide functions so that a user would be able to add a row to the new spreadsheet, and insert fields that calculate sums, averages, means and so on, for the numbers in the rows and columns. What is further needed is a configurable program for table conversion so that a user could set conditional formatting (for example, showing all negative numbers in red and within parentheses).
A present method for creating a spreadsheet from a table is to manually copy the data and paste it into a spreadsheet such as Microsoft Excel®. However, the prior art does not disclose automation of this process to a configurable spreadsheet template. What is needed is a program to take any table, or portion of a table, displayed on a web page and to convert the table to a configurable spreadsheet template with operational capabilities similar to Microsoft Excel®. Such a capability, if automated, would allow a consistent look and functionality to the converted tables. Indeed, a user would not need a spreadsheet program such as Microsoft Excel®.
In U.S. patent application Ser. No. 10/922,244, applicants disclosed a web browser plug-in or feature comprising a modification program, a configuration program, a sorting program, algorithms, and rules, that interacted with a web browser to analyze a web page for tables and inserted controls. The analysis consisted of interrogating incoming hypertext markup language (HTML) for table structure <table>, <tr>, <th> and <td> tags, and incoming text for delimiters. The analysis further consisted of marking all <th>, <td>, and <tr> tags as potentially sortable, and all delimiters for table columns or rows as potentially sortable. The analysis concluded by determining whether the marked tags and/or marked delimeters met a criteria for being sortable. Next, the configuration program introduced controls into the text for each column and row delimeter that met the criteria for being sortable. In addition, the configuration program introduced controls into the HTML for each column and row tag that met the criteria for being sortable. The configuration program linked the controls to a sorting algorithm so that when activated, the appropriate sorting algorithm acted on the row or column associated with the control. The controls were injected before the web browser rendered the web page. When the web browser rendered the web page, the web browser recognized and interpreted the injected HTML code so that the table could be sorted by the sorting program.
In U.S. patent application Ser. No. 10/922,269, applicants disclosed a web browser plug-in or feature comprising a modification program, a configuration program, a table reduction program, algorithms, and rules, that interacted with a web browser to analyze a web page for tables. The analysis consisted of interrogating incoming hypertext markup language (HTML) for table structure <table>, <tr>, <th> and <td> tags, and incoming text for delimiters. The analysis further consisted of marking all <th>, <td>, and <tr> tags as potentially hideable, and all delimiters for table columns or rows as potentially hideable. If there were two or more contiguous <th> or <td> tags they were marked as hideable. If there were two or more contiguous <tr> tags, all were marked as hideable since the rows could represent the headers. The analysis concluded by determining whether the marked tags and/or marked delimeters met a criteria for being hideable. Next, the configuration program introduced controls into the text for each column and row delimeter that met the criteria for being hideable. In addition, the configuration program introduced controls into the HTML for each column and row tag that met the criteria for being hideable. The configuration program linked the controls to a hiding algorithm so that when activated, the appropriate hiding algorithm would act on the row or column associated with the control. The controls were injected before the web browser rendered the web page. When the web browser rendered the web page, the web browser recognized and interpreted the injected HTML code so that the table could be reduced by the table reduction program.
While the above disclosures provided a way for a user to sort or hide table columns and rows, they did not allow a user to apply all of the operations available in a spread sheet control program. For example, they did not allow a user to add a row, or to insert a sum or average function to operate on a column of numbers. Therefore, a need exists for a program that will allow a user to convert any HTML table on any web page into a spreadsheet control object so that the data in the table can be viewed and manipulated within the browser window's embedded spreadsheet control without copying and pasting into an existing spreadsheet program.